package com.extractgmailaddress.helper
{
    import com.extractgmailaddress.view.MainView;
    import com.extractgmailaddress.vo.User;
    
    import flash.events.Event;
    
    import mx.collections.ArrayCollection;

    public class MainHelper
    {
        public var view:MainView;
        
        public function get sendMailTextAreaText():Object
        {
        	return view.userData.dataProvider;
        }
        
        /**
         * 送信アドレス欄にアドレスを出力します。
         * @param result カンマでつなげた送信アドレス
         */
        public function showSendAddress(result:String):void
        {
        	view.sendMailTextArea.text = result;
        }

        /**
         * ユーザデータを一覧に出力します。
         * @param result 出力するデータ
         */
        public function showUserData(result:ArrayCollection):void
        {
            view.userData.dataProvider = result;
        }

        /**
         * 一覧のユーザデータを全てチェックします。
         */
        public function checkAllUserData():void
        {
            var listData:ArrayCollection = ArrayCollection(view.userData.dataProvider);

            if (!listData)
            {
                return;
            }

            var listDataLength:int = listData.length;
            for (var i:int = 0; i < listDataLength; i++)
            {
                var item:User = User(listData.getItemAt(i));
                item.check = true;
            }

            showUserData(listData);
        }

        /**
         * 一覧のユーザデータをすべてチェク解除します。
         */
        public function unCheckAllUserData():void
        {
            var listData:ArrayCollection = ArrayCollection(view.userData.dataProvider);

            if (!listData)
            {
                return;
            }

            var listDataLength:int = listData.length;
            for (var i:int = 0; i < listDataLength; i++)
            {
                var item:User = User(listData.getItemAt(i));
                item.check = false;
            }

            showUserData(listData);
        }
        
        public function windowMaximize():void
        {
        	view.stage.nativeWindow.maximize();
        }

        /**
         * アプリケーションを終了します。
         */
        public function exit(event:Event=null):void
        {
            view.stage.nativeWindow.close();
        }
    }
}